app.useGlobalFilters() registers the filter outside the DI container — it cannot inject services. The APP_FILTER token registers the filter as a NestJS provider with full DI support, making it the preferred approach for any filter that needs to inject LoggerService, Sentry clients, or other dependencies.
app.useGlobalFilters() — simple, works for stateless filters with no dependencies.
APP_FILTER token — filter is a NestJS provider with full constructor injection.
Multiple APP_FILTER providers can be registered — they run in registration order.
APP_FILTER is the only option when the filter needs to inject LoggerService, Sentry, or ConfigService.
APP_FILTER is imported from @nestjs/core — not @nestjs/common.